Unity Android 接入高德定位SDK 您所在的位置:网站首页 unity 地图 定位 Unity Android 接入高德定位SDK

Unity Android 接入高德定位SDK

2023-09-07 14:23| 来源: 网络整理| 查看: 265

Unity版本 2020

第一步首先去高德开放平台注册账号然后申请Key

高德开放平台 | 高德地图API

注册好账号之后 点击控制台 然后选择管理key 新建一个应用 

 选择添加  然后创建一个key 选择Android平台  SHA1码获取方式参考我的另一篇博客

Android 签名文件.keystore转换.jks_小张不爱写代码的博客-CSDN博客_keystore转jks

 然后直接创建key即可

创建完毕之后去下载定位SDK

相关下载-Android 定位SDK | 高德地图API

打开Unity创建一个Unity项目

并创建如下脚本

using UnityEngine; using UnityEngine.UI; public class Sdk : MonoBehaviour { public Text t; private AndroidJavaClass jc; private AndroidJavaObject jo; private void Awake() { if (Application.platform == RuntimePlatform.Android) { jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); jo = jc.GetStatic("currentActivity"); } } public void StartAMap() { switch (Application.platform) { case RuntimePlatform.Android: jo.Call("StartAMap"); break; default: StopAMapCallBack(); break; } } public void StopAMap() { switch (Application.platform) { case RuntimePlatform.Android: jo.Call("StopAMap"); break; default: break; } } public void StartAMapCallBack(string msg) { t.text = msg; } public void StopAMapCallBack() { t.text = "1111"; } }

然后创建如下结构 Button点击事件分别指向StartAMap和StopAMap即可

 然后直接出包导出AndroidStudio项目

导出完成之后 现在AS工程中的Libs文件夹中放入解压的高德SDK jar包

 导入之后在如图位置写入如下代码

implementation fileTree(dir: 'libs', include: ['*.jar'])

在AndroidManifest.xml上面写入如下权限

在AndroidManifest.xml的Application节点内写入如下内容

打开UnityPlayerActivity脚本 在末尾加入如下代码 用以动态申请权限

//权限管理 private static final String[] PERMISSIONS = { Manifest.permission.INTERNET, Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_NETWORK_STATE, Manifest.permission.ACCESS_WIFI_STATE, Manifest.permission.CHANGE_WIFI_STATE, Manifest.permission.READ_PHONE_STATE, Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS, Manifest.permission.BLUETOOTH, Manifest.permission.BLUETOOTH_ADMIN, }; private static final int PERMISSIONS_CODE = 1; //申请权限 private void requestPermission() { // 当API大于 23 时,才动态申请权限 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { ActivityCompat.requestPermissions(this,PERMISSIONS,PERMISSIONS_CODE); } } @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); switch (requestCode) { case PERMISSIONS_CODE: //权限请求失败 for(int i=0;i


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有